package com.jcli._socket基恩士客户端;

import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @Author PengZhiLin
 * @Date 2021/7/9 11:14
 */
public class Server {
    public static void main(String[] args) throws Exception {
        //1.创建ServerSocket对象,指定服务器的端口号7777
        ServerSocket ss = new ServerSocket(7777);

        //2.调用accept()方法,接收请求,建立连接,获得Socket对象
        Socket socket = ss.accept();

        //3.通过Socket对象获得输入流
        InputStream is = socket.getInputStream();

        //4.创建字节输出流对象,关联目的地文件路径
        FileOutputStream fos = new FileOutputStream("day12\\bbb\\hbCopy3.jpg");

        //5.定义一个byte数组,用来存储读取到的字节数据
        byte[] bys = new byte[8192];

        //5.定义一个int变量,用来存储读取到的字节个数
        int len;

        //6.循环读字节数据
        System.out.println("服务器开始接收文件数据...");
        while ((len = is.read(bys)) != -1) {// 卡
            //7.在循环中,写字节数据到连接通道中
            fos.write(bys, 0, len);
        }
        System.out.println("服务器接收文件数据完毕...");

        //8.通过Socket对象获得字节输出流
        OutputStream os = socket.getOutputStream();

        //9.回写上传成功字符串信息给客户端
        os.write("文件上传成功!".getBytes());

        //10.释放资源
        fos.close();
        socket.close();
        ss.close();
    }
}
